package com.cheezeworld.entity
{
	import com.cheezeworld.math.Vector2D;
	
	import flash.events.IEventDispatcher;

	public interface IEntity extends IEventDispatcher
	{
		function get scale():Number;
		function set scale( a_value:Number ):void;
		function get id():String;
		function get type():String;
		function get parent():Entity;
		function set parent( a_value:Entity ):void;
		function get layer():int;
		
		function update( a_timePassed:int ):void;
		function dispose():void;
		function isOverlapping( a_entity:Entity ):Boolean;
		function isOverlappingCircle( a_pos:Vector2D, a_radius:Number ) : Boolean;
		function addChild( a_entity:Entity ):void;
		function removeChild( a_id:String ):void;
		function clearChildren( a_classType:Class = null ) : void;
		function getChildByID( a_id:String ):Entity;
		function getChildren() : Array;
		function addGameObject( a_gameObject:IGameObject ):void;
		function getGameObjects() : Array;
		function removeGameObject( a_object:IGameObject ):void;
		
		
		
	}
}